[iOS 8] CloudKit を使ってみよう (1) 概要
CloudKit とは
CloudKit は OS X アプリや iOS アプリで利用できる BaaS *1 です。 ユーザーの AppleID を利用して、Apple のサーバー上にあるプライベートまたはパブリックなデータベースやストレージに、データやファイルを格納することができます。格納する処理は CloudKit の API を呼び出すだけで良いので、サーバーサイドのロジックを記述する必要はありません。どなたでも手軽に利用することができます。
利用可能な機能
- 認証
- アセットストレージ
- データベース
- 検索
- 通知
利用可能な容量
- 1PBのアセット
- 10TBデータベース
- 1日5TBまでのアセット転送
- 1日50GBまでのデータベース転送
利用料金
CloudKit は無料で使いはじめることができます。詳細は発表されていませんが、制限はあるそうなので完全に無料ではなさそうです。
CloudKit の位置づけ
CloudKit は iCloud サービスの一部として提供されています。以前までの iCloud では 3 つのストレージが提供されていましたが、これに CloudKit ストレージが加わりました。ここで、iCloud で提供されているストレージをおさらいしてみましょう。
iCloud で提供されているストレージ
Key-value Storage
設定やアプリの状態などを格納することが想定されている KVS です。1アプリ1MBまで格納することができます。データの種類は、Property-list でサポートされている形式を格納することができます。
iCloud document storage
ファイルベースのストレージです。ドキュメントやドローファイル、または複雑なアプリの状態などを格納するために利用できます。最大保存容量はユーザーの iCloud アカウントで決まります。
Core Data storage
Core Data のストレージです。iCloud のドキュメントストレージ上に格納されます。最大保存容量は iCloud document storage と一緒です。(※要確認)
CloudKit storage (これ!)
ユーザー同士で共有したいファイルやデータを格納。構造化されたデータや、ユーザーが生成したデータなどを格納するために利用できます。レコードは KVS で表現されますが、値には Property-list でサポートされる形式やファイル、他のレコードへの参照などをセットできます。
CloudKit ストレージの目的
以上のことから、CloudKit ストレージは主にユーザー同士で共有したいファイルやデータを格納する目的で用意されたストレージであることが分かりました。逆に言うと、プライベートなデータを保存するだけであれば、既存の iCloud ストレージだけでも問題なさそうです。
それぞれのストレージは目的が異なるので、CloudKit ストレージだけですべてが解決するわけではありません。アプリでどのようなデータ・ファイルを保存したいか明らかにした上で、適切なストレージを採用しましょう。各ストレージの特徴はこちらに書かれているので、合わせてご覧いただければと思います。
アプリで CloudKit ストレージを利用するには
アプリでどのストレージを使うかという設定は、Xcode のプロジェクト設定の Capabilities で行います。チェックを付けたストレージだけがアプリから利用可能です。
CloudKit Dashboard
CloudKit に保存した情報の検索, 追加, 編集, 削除などといった管理は CloudKit Dashboard から行えます。CloudKit Dashboard は下記 URL からアクセスすることができます(または Capabilities にあるリンクボタン)。開発者アカウントでログインすると、その開発者アカウントでアクセスすることができるアプリのデータにアクセスすることができます。
まとめ
以上、CloudKit のサービスについての概要でした。データベースだけではなく、ファイルの保存などにも活用できるので、いろいろな場面で利用できそうですね。「ツールアプリの機能でバックエンドを使いたいけど、サーバーを構築するのはちょっと…」といった場合にも手軽に使うことができますね。ただ、OS X & iOS オンリーになってしまうので、Android などからは使うことができません。クロスプラットフォームで展開する予定の場合は別の BaaS を検討しましょう。
CloudKit の各種機能の使い方は、また別の記事で解説します。
参考
- Designing for CloudKit | iCloud Design Guide | iOS Developer Library
- CloudKit Framework Reference | iOS Developer Library
- AppleからmBaaSサービス「CloudKit」が発表されました | NIFTY Cloud
脚注
- mBaaS と言ってしまうとモバイルに限定されてしまう感じがあるので、BaaS という言い方が適切でしょう。 ↩